package pl.ps.wi.monitoring.station;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
/** 
* Zawiera definicję klasy LocalConfiguration. 
* @brief Odczytuje wartości z pliku properties
*
* @date 2010.05.19
* @version 1.00.00
*
*  Klasa jest odpowiedzalna za odczytanie odpowiednich wartości z pliku  /etc/monitoring.properties. Wykorzystywana jest do tego zmienna prywatna props, która należy do tej klasy.
*/
public class LocalConfiuration {
/**
* Prywatna zmienna służąca do odczytania wartości z pliku /etc/monitoring.properties. Typ Properties jest wbudowanym typem dla Javy.
*/
	private final Properties props;
/**
 * Konstruktor.
 * Ustawia niezmienną referencję zmiennej props, typu Properties wczytując właściwości z pliku /etc/monitoring.properties
 */		
	public LocalConfiuration() {
		props = new Properties();
		try {
			props.load(new FileInputStream(new File("/etc/monitoring.properties")));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
/**
 *  Zwraca wartość db_host z pliku /etc/monitoring.properties
 */		
	public String getDBHost() {
		return props.getProperty("db_host");
	}
	
/**
 *  Zwraca wartość db_name z pliku /etc/monitoring.properties
 */		
	public String getDBName() {
		return props.getProperty("db_name");
	}

/**
 *  Zwraca wartość db_user z pliku /etc/monitoring.properties
 */	
	public String getDBUser() {
		return props.getProperty("db_user");
	}

/**
 *  Zwraca wartość db_pass z pliku /etc/monitoring.properties
 */	
	public String getDBPass() {
		return props.getProperty("db_pass");
	}

/**
 *  Zwraca wartość db_cert_path z pliku /etc/monitoring.properties
 */		
	public String getDBCertPath() {
		return props.getProperty("db_cert_path");
	}

/**
 *  Zwraca wartość db_cert_pass z pliku /etc/monitoring.properties
 */			
	public String getDBCertPass() {
		return props.getProperty("db_cert_pass");
	}
	
/**
 *  Zwraca wartość ftp_host z pliku /etc/monitoring.properties
 */				
	public String getFtpHost() {
		return props.getProperty("ftp_host");
	}
	
/**
 *  Zwraca pobraną wartość threads_timeout z pliku /etc/monitoring.properties konwertując ja z typu string na typ int
 */		
	public int getThreadsTimeout() {
		return Integer.parseInt(props.getProperty("threads_timeout"));
	}

/**
 *  Zwraca pobraną wartość reload_configuration_timeout z pliku /etc/monitoring.properties konwertując ja z typu string na typ int
 */		
	public int getConfigurationTimeout() {
		return Integer.parseInt(props.getProperty("reload_configuration_timeout"));
	}
	
/**
 *  Zwraca wartość ftp_user z pliku /etc/monitoring.properties
 */					
	public String getFtpUser() {
		return props.getProperty("ftp_user");
	}

/**
 *  Zwraca wartość ftp_pass z pliku /etc/monitoring.properties
 */		
	public String getFtpPass() {
		return props.getProperty("ftp_pass");
	}

/**
 *  Zwraca wartość fares_device z pliku /etc/monitoring.properties
 */
	public int getFRDevice() {
		return Integer.parseInt(props.getProperty("fares_device"));
	}

/**
 *  Zwraca wartość fares_region z pliku /etc/monitoring.properties
 */
	public int getFRRegion() {
		return Integer.parseInt(props.getProperty("fares_region"));
	}

/**
 *  Zwraca wartość fares_accuracy z pliku /etc/monitoring.properties
 */
	public int getFRAccuracy() {
		return Integer.parseInt(props.getProperty("fares_accuracy"));
	}

/**
 *  Zwraca wartość fares_size z pliku /etc/monitoring.properties
 */
	public int getFRSize() {
		return Integer.parseInt(props.getProperty("fares_size"));
	}

/**
 *  Zwraca wartość fares_dir z pliku /etc/monitoring.properties
 */
	public String getFRDirectory() {
		return props.getProperty("fares_dir").trim();
	}

/**
 *  Zwraca wartość fares_attempts z pliku /etc/monitoring.properties
 */
	public int getFRAttempts() {
		return Integer.parseInt(props.getProperty("fares_attempts").trim());
	}

/**
 *  Zwraca wartość rec_device z pliku /etc/monitoring.properties
 */
	public int getRecDevice() {
		return Integer.parseInt(props.getProperty("rec_device"));
	}

/**
 *  Zwraca wartość rec_dir z pliku /etc/monitoring.properties
 */
	public String getRecDirectory() {
		return props.getProperty("rec_dir").trim();
	}

/**
 *  Zwraca wartość rec_time z pliku /etc/monitoring.properties
 */
	public int getRecTime() {
		return Integer.parseInt(props.getProperty("rec_time").trim());
	}

/**
 *  Zwraca wartość vc_device z pliku /etc/monitoring.properties
 */
	public int getVCDevice() {
		return Integer.parseInt(props.getProperty("vc_device").trim());
	}

/**
 *  Zwraca wartość vc_dir z pliku /etc/monitoring.properties
 */
	public String getVCDirectory() {
		return props.getProperty("vc_dir").trim();
	}

/**
 *  Zwraca wartość vc_detector z pliku /etc/monitoring.properties
 */	
	public String getVCDetector() {		
		return props.getProperty("vc_detector").trim();
	}
	
}
